package com.ai.aichat.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户使用统计表
 * </p>
 *
 * @author baomidou
 * @since 2025-09-16
 */
@Data
@TableName("user_usage_stats")
@ApiModel(value = "UserUsageStats对象", description = "用户使用统计表")
public class UserUsageStats implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 统计ID
     */
    @ApiModelProperty("统计ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    private Long userId;

    /**
     * 统计日期
     */
    @ApiModelProperty("统计日期")
    private LocalDate date;

    /**
     * 对话数量
     */
    @ApiModelProperty("对话数量")
    private Integer conversationCount;

    /**
     * 消息数量
     */
    @ApiModelProperty("消息数量")
    private Integer messageCount;

    /**
     * 输入Token数
     */
    @ApiModelProperty("输入Token数")
    private Integer inputTokens;

    /**
     * 输出Token数
     */
    @ApiModelProperty("输出Token数")
    private Integer outputTokens;

    /**
     * 总费用
     */
    @ApiModelProperty("总费用")
    private BigDecimal totalCost;

    /**
     * 使用的模型统计
     */
    @ApiModelProperty("使用的模型统计")
    private String modelsUsed;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private LocalDateTime updatedAt;
}
